Android 14 新增权限
hi
这是 dhl
的第 87 篇文章个人微信: hi-dhl
Hi 大家好,我是 DHL,大厂全栈程序员,曾就职于 美团、快手、小米。分享技术干货和编程知识点
原文: https://medium.com/proandroiddev/one-more-permission-android14-472ecc999729
译者:程序员 DHL
本文已收录于仓库 https://github.com/hi-dhl/Technical-Article-Translation
这篇文章,主要分享在 Android 14 以上新增的权限 READ_MEDIA_VISUAL_USER_SELECTED
,该权限允许用户仅授予对选定媒体的访问权限(Photos / Videos)),而不是访问整个媒体库。
新的权限弹窗
当你的 App 运行在 Andrid 14 以上的设备时,如果请求访问照片,会出现以下对话框,你将看到新的选项。
受影响的行为
当我们在项目中声明新的权限 READ_MEDIA_VISUAL_USER_SELECTED
,并且用户选择 Select photos and videos(Select photos or Select videos)
:
READ_MEDIA_IMAGES
和READ_MEDIA_VIDEO
权限都会被拒绝READ_MEDIA_VISUAL_USER_SELECTED
权限被授予时,将会被允许临时访问用户的照片和视频如果我们需要访问其他照片和视频,我们需要同时申请
READ_MEDIA_IMAGES
或者READ_MEDIA_VIDEO
权限
如何在项目中使用新的权限
在
AndroidManifest.xml
文件中添加下面的权限
// new permisison
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
使用
ActivityResultContract
请求新的权限
rememberLauncherForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { mapResults ->
mapResults.forEach {
Log.d(TAG, "Permission: ${it.key} Status: ${it.value}")
}
// check if any of the requested permissions is granted or not
if (mapResults.values.any { it }) {
// query the content resolver
queryContentResolver(context) { listOfImages ->
imageDataModelList = listOfImages
}
}
}
为什么要使用 RequestMultiplePermissions
,因为我们需要同时请求 READ_MEDIA_IMAGES
, READ_MEDIA_VIDEO
权限
启动权限申请流程
permissionLauncher.launch(arrayOf(READ_MEDIA_IMAGES, READ_MEDIA_VISUAL_USER_SELECTED))
}) {
Text("Allow to read all or select images")
}
关于 Android 12 、 Android 13 、Android 14 功能和权限的变更,点击下方链接前往查看:
最后我们看一下运行效果
全文到这里就结束了,感谢你的阅读,坚持原创不易,欢迎 在看、点赞、分享 给身边的小伙伴,我会持续分享原创干货!!!
推荐阅读:
Hi 大家好,我是 DHL,就职于 美团、快手、小米。分享技术干货和编程知识点,包含性能优化、系统源码、算法、数据结构、大厂面经。
哔哩哔哩:https://space.bilibili.com/498153238
掘金:https://juejin.im/user/2594503168898744
博客:https://hi-dhl.com
Github:https://github.com/hi-dhl
👇🏻 真诚推荐你关注我👇🏻
因微信公众号更改了推送机制
可能无法及时看到最新文章
将公众号设为 星标
或常为文章点 在看
即可及时收到最新文章
欢迎前往 博客 查看更多 Kotlin、Jetpack 、动画算法图解、系统源码分析等等文章。以及开源项目、LeetCode / 剑指 offer / 国内外大厂面试题 / 多线程 题解。
https://www.hi-dhl.com